package com.yu.java.se.jlt;

/**
 * @author wu
 * @create 2023-01-04-14:44
 */
public class JitCase {
    public static void main(String[] args) {
        long start1=System.currentTimeMillis();
        for (int i=0;i<10000000;i++){
            int e=alSum(1,2,3,4);//调用嵌套方法多次计算（JIT自动内联进行方法体替换）
        }
        long end1=System.currentTimeMillis();
        System.out.println("JIT内置方法内联时间花费="+(end1-start1));
        long start2=System.currentTimeMillis();
        for (int i=0;i<10000000;i++){
            int e=alSum2(1,2,3,4);//多次计算（方法体替换成内联后的方法体，模拟JIT方法内联）
        }
        long end2=System.currentTimeMillis();
        System.out.println("模拟JIT内置方法内联时间花费="+(end2-start2));
    }
    public static int alSum(int a,int b,int c,int d){
        return sum(a,b)+sum(c,d);//在alSum方法中嵌套调用sum方法
    }
    public static int  sum(int a,int b){
        return a+b;
    }
    public static int alSum2(int a,int b,int c,int d){
        return a+b+c+d;
    }

}
